package com.itheima.api.map.demo06;

import java.util.HashMap;
import java.util.Map;

/**
 * 演示：Map集合的第三种遍历方式，使用forEach方法完成
 */
public class MapDemo01 {

    public static void main(String[] args) {

        // 1. 通过多态的方式去创建Map集合对象
        Map<String , String> map = new HashMap<String , String>() ;

        // 2. 添加元素
        map.put("杨过" , "小龙女") ;
        map.put("乔峰" , "阿朱") ;
        map.put("段誉" , "王语嫣") ;

        // 3. 遍历集合
        /**
         * void forEach(BiConsumer<? super K, ? super V> action)
         * 在调用forEach方法的时候，我们需要传递一个参数，这个参数的类似BiConsumer
         * public interface BiConsumer<T, U> {
         *     void accept(T t, U u);
         * }
         *
         * 既然是一个接口，那么我们在进行方法调用的时候应该为其传递一个实现了 BiConsumer接口的子类对象
         * 在进行调用的时候就存在两种思想：1. 站在面向对象的角度去完成(传递一个匿名内部类) 2. 站在函数式编程思想的角度去完成(lambda表达式)
         */
//        map.forEach( (String s1 , String s2) -> {
//            System.out.println(s1 + "-----" + s2);
//        });

        map.forEach( (key , value) -> System.out.println(key + "-----" + value) );

    }

}
